#include <boost/current_function.hpp>
#include <iostream>

void f()
{
	std::cout << BOOST_CURRENT_FUNCTION << std::endl;
}
namespace field
{
	void g()
	{
		std::cout << BOOST_CURRENT_FUNCTION << std::endl;
	}
}

class Algebra
{
public:
	void h(){
		std::cout << BOOST_CURRENT_FUNCTION << std::endl;
	}
};

int main()
{
	std::cout << __FUNCTION__ << std::endl;				//*main
	std::cout << __FUNCSIG__ << std::endl;				//*int __cdecl main(void)
	std::cout << __FUNCDNAME__ << std::endl;			//*main
	std::cout << BOOST_CURRENT_FUNCTION << std::endl;	//*int __cdecl main(void)

	f();				//*void __cdecl f(void)
	field::g();			//*void __cdecl field::g(void)
	Algebra algebra;
	algebra.h();		//*void __thiscall Algebra::h(void)
}
